专利摘要:
一種多重顯示器控制方法與系統,,上述方法包括下列步驟。提供和作業系統的圖形程式庫相同的圖形介面,用以取代圖形程式庫自應用程式接收繪圖命令。根據應用程式的顯示區域,決定由多個圖形處理器所組成的顯示集合,顯示集合每一個圖形處理器所控制的顯示器所顯示的畫面皆與顯示區域有交集。根據顯示區域與顯示集合中每一圖形處理器所控制之顯示器所顯示的畫面的顯示交集區域,分派對應的座標轉換繪圖命令至顯示集合中所對應的每一圖形處理器,使每一顯示集合中的圖形處理器僅需繪製對應的顯示交集區域部分。
公开号:TW201301195A
申请号:TW101117079
申请日:2012-05-14
公开日:2013-01-01
发明作者:Yi-Fei Zhu;guo-feng Zhang
申请人:Via Tech Inc;
IPC主号:G06F3-00
专利说明:
多重顯示器控制方法及其系統
本發明是有關於一種顯示器的控制方法與系統,且特別是有關於一種多重顯示器的控制方法與系統。
目前市面上已有許多多重顯示器的技術,例如,利用多重輸出轉接器(multiple output adapter)擴增顯示器的數量、使用多部的電腦驅動多個顯示器、利用顯示器的功能將一個視訊來源提供至多個顯示器、或以外部交換器(external switch)將多個顯示器組合成顯示牆。上述所提之各種技術各有優缺點,但整體而言,實現的技術常常過於複雜、昂貴或是缺乏高解析度影像的支援能力,其中最重要的是缺乏三維影像顯示技術,例如微軟公司(Microsoft Corporation)的直接三維程式庫(Direct3D runtime library)的支援。
三維影像顯示技術,例如Direct3D,包括Direct3D影像應用或DirectShow視頻影片應用等皆需要使用Direct3D的程式庫來處理影像內容。但是目前Direct3D程式庫只能辨認邏輯上之一個顯示器,意即若將一個應用程式的視窗顯示於多重顯示器上,就算目前多重顯示器之中是由多個圖形處理器(graphics processing unit,簡稱GPU)所控制,視窗(Windows)作業系統仍是只能在其中的一個圖形處理器處理並繪製好Direct3D的影像,再透過這個圖形處理器將繪製好的Direct3D影像根據顯示位置複製至各個圖形處理器以供顯示。由於上述複製是由作業系統執行而無圖形處理器加速,所以處理過程非常緩慢。
再者,相較於建立一般的二維影像內容,建立三維影像資料顯示內容的運算複雜度本就更為複雜,所以顯示控制系統(例如電腦系統)在處理並顯示影像時即會耗費較多的時間。是以,若依據習知技術在一個圖形處理器繪製好三維影像再複製到其他圖形處理器的方式,更是在已相當耗時的影像處理過程中,再因為這個複製程序而產生處理時效的延宕,這樣的處理方式明顯的嚴重影像顯示效率。所以,如何在考量經濟成本的情況下,加速建立三維影像資料的顯示內容並顯示於多重顯示器上,便成為一個亟需解決的問題。
本發明提供一種多重顯示器控制方法,用於控制多個圖形處理器同時繪製一顯示器畫面,其中每一上述圖形處理器控制至少一顯示器。上述多重顯示器控制方法包括以下步驟。提供和一作業系統的程式庫相同的圖形介面,以取代此程式庫自應用程式接收繪圖命令;根據應用程式的顯示區域,決定由多個圖形處理器所組成的一顯示集合,此顯示集合中的每一個圖形處理器所控制的顯示器所顯示的畫面皆與顯示區域有交集;以及,根據顯示區域在顯示集合的每一個圖形處理器所控制的顯示器所顯示的畫面的顯示交集區域,對繪圖命令進行座標轉換以產生至少一座標轉換繪圖命令,並分派座標轉換繪圖命令至顯示集合中對應的圖形處理器,以使每一顯示集合中的圖形處理器僅需繪製對應的顯示交集區域的部分。
本發明提供一種多重顯示器控制系統,用於控制多個圖形處理器同時繪製一顯示器畫面,其中每一圖形處理器控制一至多個顯示器。多重顯示器控制系統包括一記憶體及一控制器。控制器提供和一作業系統的程式庫相同的圖形介面,並以此圖形介面自應用程式接收繪圖命令。控制器根據應用程式的顯示區域,決定多個圖形處理器的一顯示集合,此顯示集合中的每一個圖形處理器所控制的顯示器所顯示的畫面皆與顯示區域有交集。控制器根據顯示區域在顯示集合的每一個圖形處理器所控制的顯示器所顯示的畫面的顯示交集區域,對繪圖命令進行座標轉換以產生至少一座標轉換繪圖命令,並分派座標轉換繪圖命令至顯示集合中對應的圖形處理器。控制器亦將顯示集合與上述之顯示交集區域記錄在記憶體。
本發明提供一種多重顯示器控制方法,用於控制多個圖形處理器同時繪製一顯示器畫面,其中每一圖形處理器控制至少一顯示器,多重顯示器控制方法包括:根據一應用程式的顯示區域,決定多個圖形處理器的一顯示集合,其中顯示集合中的圖形處理器所控制的顯示器所顯示的畫面與應用程式的顯示區域有交集;根據顯示集合中的圖形處理器所控制的顯示器的顯示區域,對繪圖命令進行座標轉換以產生至少一座標轉換繪圖命令;以及,並分派座標轉換繪圖命令至顯示集合中對應的圖形處理器,以使每一顯示集合中的圖形處理器僅繪製顯示交集區域的部分。
基於上述,本發明可從應用程式接受繪圖命令,並依據各圖形處理器所控制顯示器所顯示畫面進行座標轉換後,再分派座標轉換繪圖命令至顯示集合之對應的圖形處理器後,使這些圖形處理器能各自處理顯示交集區域之影像內容,隨後同時顯示於多重顯示器上,減少了在多重顯示器上顯示影像的所需時間。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1繪示為本發明一實施例之多重顯示器控制系統的示意圖。請參照圖1,應用程式101發出顯示所需之繪圖命令,並將此繪圖命令送往圖形介面102。圖形介面102自應用程式101接收繪圖命令,並傳送至中介軟體103。其中,應用程式101、中介軟體103、以及驅動程式104都在一個作業系統中執行,而中介軟體103所提供之圖形介面102與上述作業系統繪圖程式庫之圖形介面相同,因此中介軟體103可取代上述程式庫以接收應用程式101的繪圖命令,而應用程式也不會感受到中介軟體103的存在。
在一實施例中,圖形介面102可透過攔截應用程式101的繪圖命令,然後中介軟體103對所攔截的繪圖命令進行座標轉換的操作,用以將繪圖命令中在整體顯示區域座標,轉換成各圖形處理器所控制之各顯示器的顯示座標後,再將轉換座標後的繪圖命令分派至對應的圖形處理器進行影像或圖形繪製等處理,不需要再透過繪圖程式庫進行處理的方式來達成所需。此外,上述的作業系統可以是微軟公司的視窗作業系統,上述的程式庫可以是Direct3D程式庫或OpenGL,不過本發明不以此為限。在其他實施例中,可用類似的作業系統和程式庫分別替代上述的視窗作業系統和Direct3D程式庫。應注意的是,因目前Direct3D程式庫只能辨認邏輯上之一個顯示器和一個圖形處理器,意即只能在一個圖形處理器上繪製全部的顯示器畫面,再由作業系統將上述顯示器畫面複製到剩餘的圖形處理器以供顯示,由於作業系統複製的過程非常緩慢,因此將連帶影響顯示的效果。相反的,本發明之中介軟體103的設計可以同時辨認多個顯示器和控制多個顯示器的多個圖形處理器,並且中介軟體103更可分派座標轉換後的繪圖命令至每一個圖形處理器,於是在本發明實施例之中介軟體103控制下,可由多個圖形處理器一同繪製顯示器畫面。因此本發明之多重顯示器控制方法透過圖形介面102和中介軟體103的設計,用以取代Direct3D程式庫來接收應用程式101的繪圖命令,並搭配多工處理的方式加速影像的處理速度以減少單一圖形處理器之負擔;另一方面,本發明之圖形介面102和中介軟體103在取代Direct3D程式庫以接收應用程式101的繪圖命令時,應用程式101並不會感受到中介軟體103的存在,亦即本發明係在不改變作業系統和驅動程式的架構下,同時達到直接控制圖形處理器運作的目的。
請繼續參照圖1。中介軟體103與圖形介面102耦接,接收透過由圖形介面102傳送而來之繪圖命令,並將原本在整個顯示區域進行繪製的繪圖命令進行座標轉換,用以產生對應於個別圖形處理器的座標轉換繪圖命令之後,再透過作業系統原始介面107呼叫驅動程式104分派上述座標轉換繪圖命令至圖形處理器1051~105n,分派座標轉換繪圖命令之動作以下將另外詳細說明。應注意的是,在一實施例中的中介軟體103除了將整個繪圖區域的顯示座標轉換成個別圖形處理器所控制顯示器的座標外,還需要記錄應用程式所創建的資源和狀態,例如上述座標轉換的過程與記錄、個別圖形處理器所對應之座標轉換後繪圖命令所需要的資源與這些資源的位置。這些資源可以包含,但不限於Direct3D的端點暫存區(vertex buffer)、索引暫存區(index buffer)、端點座標轉換程式(vertex shader)、畫素色彩計算程式(pixel shader)、以及紋理圖案等資訊;至於上述狀態可以包含,但不限於Direct3D,光柵化狀態,紋理混合狀態,深度和模板狀態,輸出混合狀態等資訊。此外,依據個別圖形處理器所顯示的內容傳送對應的座標轉換繪圖命令的細節描述,將利用圖3A與圖3B、圖7、圖8A與圖8B做進一步的說明。此外,在一實施例中的作業系統原始介面107係作業系統提供給應用程式呼叫驅動程式的應用程式介面(Application Programming Interface,API),由於這些應用程式介面原來是提供給被中介軟體103所取代的程式庫調用驅動程式104之用,但在實施例中因該程式庫已經被中介軟體103所取代,所以中介軟體103亦透過此應用程式介面來呼叫驅動程式104。
驅動程式104分別與作業系統原始介面107及圖形處理器1051~105n耦接,並由中介軟體103接收座標轉換繪圖命令後,再分別將這些座標轉換繪圖命令轉譯成圖形處理器所能辨識的轉譯繪圖命令,接著把轉譯繪圖命令分派至對應之圖形處理器1051~105n。驅動程式係電腦作業系統與硬體之間的溝通橋樑,其係將作業系統所傳送之繪圖命令轉譯成圖形處理器硬體所認得的命令(亦即上述的轉譯繪圖命令),這部份屬於熟習本發明技藝者所熟知之技術故不在此贅述。圖形處理器1051~105n與驅動程式104耦接,接收由驅動程式104所轉譯之轉譯繪圖命令,並根據轉譯繪圖命令來控制多重顯示器106。多重顯示器106由一至多個顯示器所組成,並與圖形處理器1051~105n耦接。其中,每一個圖形處理器1051~105n皆可控制多重顯示器106其中的一至多個顯示器,並依據轉譯繪圖命令的指示在顯示器的顯示緩衝區中繪製欲顯示的影像或圖形內容,隨後在電腦系統的控制下,將顯示緩衝區的內容同時顯示在顯示器中。明顯的,由於中介軟體103可將座標轉換繪圖命令透過作業系統原始介面107送往驅動程式104,隨後再將由驅動程式所轉譯的轉譯繪圖命令分派至圖形處理器1051~105n,於是不需要如習知技術般,只能在一個圖形處理器中處理並繪製好Direct3D的影像,再將此影像根據顯示位置複製至各個圖形處理器以供顯示,而是直接將所需顯示的資料,透過驅動程式送往個別的圖形處理器,因此可以加速3D影像的顯示速度,而後文將對本發明實施例作更詳盡的描述。應注意的是,雖然在整體顯示區域的繪圖命令可能在座標轉換後而產生至少一個對應於顯示集合中圖形處理器的座標轉換繪圖命令,但在這樣的轉換後,由於個別圖形處理器可以依據座標轉換繪圖命令的指示對各自的顯示緩衝區進行圖形或影像的繪製操作,於是能透過多工的方式來加速影像的處理速度,進而減少單一圖形處理器之負擔。
圖2繪示為本發明一實施例之多重顯示器控制方法之步驟流程圖,此控制方法可由中介軟體103執行。請參照圖2,首先於步驟S201中,本方法提供和作業系統的某一程式庫相同之圖形介面,例如圖1中之圖形介面102,並取代此程式庫以向應用程式接受繪圖命令,例如圖1中之中介軟體103接收由應用程式所發出的繪圖命令。接著,於步驟S202中,根據應用程式的顯示區域決定由多個圖形處理器所組成的一個顯示集合,此顯示集合中之圖形處理器所控制的顯示器所顯示的畫面皆與上述顯示區域有交集。在一實施例中,顯示區域為應用程式在顯示器的畫面上所顯示之視窗,它可以跨越複數個顯示器,而這些顯示器將依據應用程式的指示共同繪製與顯示影像或圖形。然後於步驟S203中,根據顯示交集區域進行整體顯示區域至個別顯示器的座標轉換,用以產生對應於個別圖形處理器的座標轉換繪圖命令後,再分派座標轉換繪圖命令至顯示集合中的相應的圖形處理器。於是,顯示集合內的所有圖形處理器,可依據座標轉換繪圖命令的指示在各自的顯示交集區域中進行繪製,例如將所需顯示的圖案或影像等資料繪製在各自的顯示緩衝區(Display buffer)中,隨後再由電腦系統控制顯示集合內的所有圖形處理器同時顯示各自顯示緩衝區的內容,以完成多重顯示的顯示作業。
圖3A繪示為本發明一實施例中,一顯示區域及顯示器畫面之關係示意圖。首先請參照圖3A,在圖3A中的顯示器211、212、213、和214,其分別由四個圖形處理器GP11、GP12、GP13和GP14(未繪示)所控制。顯示區域AP1A表示目前應用程式的視窗大小及位置,由於顯示區域AP1A與顯示器211、212、213、和214的畫面皆有交集,因此在本實施例中之顯示集合包含圖形處理器GP11、GP12、GP13和GP14四個處理器。如圖3A所示,顯示區域AP1A與顯示器211、212、213、和214的畫面交集區域分別為顯示交集區域A11、A12、A13和A14,其分別對應於顯示器211、212、213、和214,因此顯示集合中的圖形處理器GP11、GP12、GP13和GP14將收到由驅動程式所分派之轉譯繪圖命令(亦即經過座標轉換、與經過驅動程式轉譯過後的繪圖命令),分別處理與繪製顯示交集區域A11、A12、A13和A14中之顯示內容。原本的整體顯示區域(亦即顯示區域AP1A)在座標轉換後將被切割為四個顯示交集區域A11、A12、A13和A14,並分別由對應的圖形處理器GP11、GP12、GP13和GP14同時進行圖形/影像繪製的操作,不需要如習知技術般,僅能在一個圖形處理器中進行繪製操作。
圖3B繪示為本發明另一實施例中,一實施方式的目前顯示區域及顯示器畫面之關係示意圖。請參照圖3B,其中顯示器311、312、和313由圖形處理器GP21(未繪示)所控制,顯示器321、322、和323由圖形處理器GP22(未繪示)所控制,顯示器331、332、和333由圖形處理器GP23(未繪示)所控制。如圖3B所示,顯示區域AP1B與顯示器311、312、321、和322的畫面有交集,所以本實施例中之顯示集合僅包含控制顯示器311、312、321和322的圖形處理器GP21及GP22。是以,圖形處理器GP21及GP22將收到由驅動程式所分派之轉譯繪圖命令(係轉譯座標轉換繪圖命令而得),並分別處理且繪製顯示交集區域A21和A22,及A23和A24中之顯示內容。同樣的,原本的整體顯示區域(亦即顯示區域AP1B)在座標轉換後將被切割為四個顯示交集區域A21和A22,及A23和A24,並分別由對應的圖形處理器GP21(控制顯示器311與312)與GP22(控制顯示器321與322)同時進行圖形/影像繪製的操作,例如圖形處理器GP21將控制顯示器311僅繪製顯示交集區域A21的內容,不需要如習知技術般,僅能在一個圖形處理器中進行繪製操作。應注意的是,圖3B中的圖形處理器GP31因未在顯示集合中,所以將不會收到由驅動程式所分派之轉譯繪圖命令,也不會參與顯示區域AP1B的多重顯示運作。再者,雖然圖形處理器GP21與GP22位於顯示集合中,但因圖形處理器GP21所控制的顯示器313以及由GP22所控制的顯示器323未與顯示區域AP1B產生顯示交集區域,所以圖形處理器GP21與GP22即使收到由驅動程式所傳送的轉譯繪圖命令,卻只會分別控制顯示器311/312與顯示器321/322進行多重顯示,而顯示器313與323則不會參與顯示區域AP1B的多重顯示運作。
圖4繪示為本發明一實施例中,分派繪圖命令至顯示集合的每個圖形處理器的步驟之流程圖。請參照圖4,由於在本實施例中所欲顯示的影像可能為三維影像,故首先必須於步驟S400中,判斷繪圖命令中的端點(vertex)坐標是否已轉換為顯示器的畫面坐標。若繪圖命令中的端點坐標已轉換為顯示器的畫面坐標,接著於步驟S401,在將整個顯示區域的座標轉換成各別圖形處理器所控制顯示器的座標,用以產生座標轉換繪圖命令後,再針對顯示集合內的每個圖形處理器,僅對顯示交集區域部份分派對應的座標轉換繪圖命令,因此顯示集合內的每一個圖形處理器僅需繪製其對應的顯示交集區域。例如圖3A的圖形處理器GP11將僅需繪製顯示交集區域A11,而圖3B的圖形處理器GP22將僅需繪製顯示交集區域A23和A24。隨後在步驟S403中,在顯示集合中的每一個圖形處理器將各自進行繪製所指定的內容,例如將座標轉換繪圖命令所指示的圖案或影像等資料繪製在各自的顯示緩衝區中,並當顯示集合內的所有圖形處理器皆完成繪製後,由電腦系統控制顯示集合內的所有圖形處理器同時顯示各自的顯示交集區域,亦即控制顯示集合內的所有圖形處理器同時顯示其所控制顯示器的顯示緩衝區的內容。
請繼續參照圖4,若於步驟S400發現繪圖命令中的端點坐標尚未轉換為顯示器的畫面坐標,則於步驟S411中,根據繪圖命令中的端點坐標和顯示器的畫面坐標之間的轉換關係,以及顯示集合中的每一個圖形處理器的顯示交集區域,為顯示集合中的各個圖形處理器設定對應的視界轉換(viewport transform)。視界轉換是Direct3D的功能之一,設定視界轉換相當於設定各個圖形處理器在上述端點所在的三維向量空間之中可觀察到的視野範圍。其中,端點坐標可以向量形式存在,再透過視界轉換的計算便能直接獲得位於顯示器上的畫面坐標。由於在步驟S411所轉換的是應用程式在多重顯示器上的顯示座標,所以接著於步驟S412中,基於上述的視界轉換的設定,再將整體顯示區域(亦即在多重顯示器上的顯示區域)的顯示座標轉換成個別圖形處理器所控制顯示器的座標,用以產生對應於個別圖形處理器的座標轉換繪圖命令後,隨後透過驅動程式進行轉譯以產生轉譯繪圖命令,接著送往對應的圖形處理器進行繪製。於是顯示集合中的每一個圖形處理器便能僅需繪製繪圖命令中,各圖形處理器所對應的顯示交集區域的部分。接著於步驟S403中,控制各個圖形處理器將各自進行繪製轉譯繪圖命令所指定的顯示內容,例如將所需顯示的圖案或影像等資料繪製在各自的顯示緩衝區中,並在繪製完成時,由電腦系統控制顯示集合中的所有圖形處理器同時顯示各自的顯示交集區域。
以下描述本發明實施例中,對於Direct3D的可繪製紋理圖案(renderable texture)的處理方式。圖5繪示為本發明一實施例中,分派可繪製紋理繪圖命令至顯示集合中的每一圖形處理器的步驟流程圖。因為在決定端點的位置坐標後,顯示三維影像物件的另一個重點是物件表面的紋理圖案的繪製及顯示,因此特別加以說明。請參照圖5,首先於步驟S501中,經由圖形介面自應用程式接收可繪製紋理繪圖指令後,再由可繪製紋理繪圖指令中取出紋理圖案在顯示器的畫面上的顯示位置。應注意的是,步驟S501並非Direct3D的標準圖形介面,而是本實施例的擴充功能,所以若應用程式可提供紋理圖案在顯示器的畫面上的顯示位置時,便可透過本發明實施例,將欲顯示紋理圖案在進行座標轉換與切割後分配給對應的圖形處理器進行繪製。接著,於步驟S502中,根據紋理圖案的顯示位置,計算紋理圖案在顯示集合中的各個圖形處理器所控制的顯示器所顯示的畫面的紋理圖案顯示交集區域。應注意的是,由於同一個紋理圖案可能被複數個不同的顯示器所顯示,所以若不針對紋理圖案的顯示位置與內容進行切割處理,例如計算出紋理圖案在每個圖形處理器所控制之顯示器中的座標與所需顯示內容的話,將需要把整個紋理圖案傳送到每一個負責顯示此紋理圖案的圖形處理器做處理,這樣無疑是浪費整個電腦系統的資源與時間。但在本發明提供這項功能後,即便可進一步對紋理圖案進行座標轉換與切割,並傳送到對應的圖形處理器,即可免除這類的資源浪費。此外,紋理圖案顯示交集區域意指紋理圖案的顯示區域與顯示集合中每一個圖形處理器所控制的顯示器所顯示的畫面所交集的部份,其係包含在顯示交集區域之中,這部份的敘述會在圖7做更詳盡的說明。
請繼續參照圖5,在計算得到紋理圖案顯示交集區域後,於步驟S503中,根據顯示集合中各個圖形處理器所控制的顯示器所顯示的畫面上的紋理圖案顯示交集區域,將整體顯示座標轉換為個別圖形處理器所控制顯示器的顯示座標,用以將可繪製紋理繪圖指令轉換成座標轉換紋理圖案繪圖命令。因在整體顯示區域中顯示的可繪製紋理圖案在此時已依據對應的圖形處理器被切割成複數部份,而相關資料(包含切割後的紋理圖案與顯示座標)皆包含在座標轉換紋理圖案繪圖命令中,因此再將它們分派至紋理圖案顯示集合中的各個圖形處理器,而每個圖形處理器僅繪製上述紋理圖案在自己所控制的顯示器所顯示的畫面上的一部分時,便可達到可繪製紋理圖案在多重顯示器上的多工處理。值得注意的是,顯示集合中之圖形處理器所控制的顯示器上亦可能沒有紋理圖案顯示交集區域,所以在此步驟沒有紋理圖案顯示交集區域之顯示集合中圖形處理器將不參與可繪製紋理圖案的繪製與進行多重顯示之動作。最後於步驟S504,當所有圖形處理器繪製完成後,電腦系統再控制參與繪製的所有圖形處理器同時顯示繪製在其顯示緩衝區中的資料。應注意的是,步驟S504的顯示操作係圖形處理器將各顯示器的顯示資料寫入顯示緩衝區時,將所需顯示的可繪製紋理圖案一併寫入顯示緩衝區,否則可繪製紋理圖案的顯示時間可能不正確。此外,由於顯示集合中的圖形處理器,係在對應的顯示交集區域中進行繪製操作,這些繪製操作可以是透過一次或多次的繪圖命令來進行,此處的可繪製紋理圖案的繪製只是所有繪製操作的一部份而已。
以下描述本發明實施例中,對於Direct3D的上載紋理圖案(uploaded texture)的處理方式。圖6繪示為本發明一實施例中,分派上載紋理圖案繪圖命令至顯示集合的每一圖形處理器的步驟之流程圖。此實施例與圖5所述之實施例的流程步驟大致相同,其中兩者主要的差別在於此實施例欲顯示之上載紋理圖案係由應用程式的上載紋理圖案繪圖命令直接提供,而不是由作業系統所提供。圖6中的步驟S601和S602分別與步驟S501和S502相同。隨後於步驟S603中,將整體顯示座標轉換為個別圖形處理器所控制顯示器的顯示座標,用以將上載紋理圖案繪圖命令轉換成座標轉換之上載紋理圖案繪圖命令。同樣的,因在整體顯示區域中顯示的上載紋理圖案在此時已依據對應的圖形處理器被切割成複數個部份,而相關資料(包含切割後的上載紋理圖案與顯示座標)皆包含在座標轉換上載紋理圖案繪圖命令中,因此再將它們分派至顯示集合中的圖形處理器,且此圖形處理器所控制的顯示器所顯示的畫面上有交集區域,而每個圖形處理器僅繪製上載紋理圖案在自己所控制的顯示器所顯示的畫面上的交集區域時,便可達到上載紋理圖案在多重顯示器上的多工處理。接下來,在步驟S604中,當顯示集合內的所有圖形處理器將應用程式所上載的紋理圖案繪製在對應的顯示緩衝區中後,電腦系統再控制這些圖形處理器同時顯示其顯示緩衝區中的資料。應注意的是,步驟S604的顯示操作與步驟S504相同,係圖形處理器將各顯示器的顯示資料寫入顯示緩衝區時,將所需顯示的上載紋理圖案一併寫入顯示緩衝區,否則上載紋理圖案的顯示時間可能不正確。
圖7繪示為本發明一實施例中,顯示區域中之一紋理圖案(可以是可繪製紋理圖案或上載紋理圖案)於顯示器上顯示之實施方式之示意圖。請參照圖7,其中,顯示器711、712、721和722分別由圖形處理器GP71、GP72、GP73和GP74(未繪示)所控制。顯示區域AP7表示應用程式之顯示區域並分別與顯示器711、712、721和722具有顯示交集區域A71、A72、A73和A74,因此在顯示集合中便有圖形處理器GP71、GP72、GP73和GP74。紋理圖案顯示區域TEX7表示紋理圖案的顯示位置及大小,並與顯示器711和721具有紋理圖案顯示交集區域B11及B21。接著,若紋理圖案需被繪製,則將應用程式的繪圖命令中對應的紋理圖案顯示交集區域B11及B21的部分進行顯示座標轉換與紋理圖案的切割後,再分別分派座標轉換紋理圖案繪圖命令(包含轉換後的座標與分割的紋理圖案)至圖形處理器GP71及GP73,控制圖形處理器GP71及GP73分別繪製紋理圖案顯示交集區域B11及B21的紋理圖案,並在圖形處理器完成所有的繪製操作後,再由電腦系統控制圖形處理器同時顯示其所控制顯示器的顯示緩衝區之內容,於是紋理圖案便能透過多重顯示方式來顯示。若紋理圖案由應用程式提供(意即是上載紋理圖案),則將上載紋理圖案對應於紋理圖案顯示交集區域B11及B21的部份進行顯示座標的轉換與紋理圖案的切割後,再分別分派座標轉換上載紋理圖案命令(亦包含轉換後的座標與分割的紋理圖案)給圖形處理器GP71及GP73,隨後由電腦系統控制圖形處理器GP71及GP73同時顯示其所控制顯示器的顯示緩衝區之內容,於是上載紋理圖案便可同時顯示在多重顯示器上。明顯的,紋理圖案顯示交集區域B11及B21係包含於顯示交集區域A71與A73之中,所以只有圖形處理器GP71及GP73需針對紋理圖案顯示交集區域B11及B21進行紋理圖案的繪製,而圖形處理器GP72及GP74在此時則不用繪製紋理圖案。
圖8A及圖8B繪示為本發明一實施例中,應用程式之顯示區域改變的實施方式之示意圖。請參照圖8A,其中,顯示器811、812、813和814分別由圖形處理器GP81、GP82、GP83和GP84(未繪示)所控制。因圖8A中的顯示區域AP8A僅與顯示器811具有交集,亦即顯示集合中僅包含圖形處理器GP81,因此在繪圖命令的座標被轉換後將只傳送至圖形處理器GP81進行繪製。
接著,請同時參照圖8A及圖8B,此時應用程式的顯示區域自圖8A中的顯示區域AP8A增大至圖8B中的顯示區域AP8B,因此顯示器812、813和814的顯示區域亦和顯示區域AP8B產生交集,控制顯示器812、813和814的圖形處理器GP82、GP83和GP84便因此加入顯示集合中。由於圖形處理器GP82、GP83和GP84已新增至顯示集合中,為了繪製應用程式的顯示內容,圖形處理器GP82、GP83和GP84必須和圖形處理器GP81具有相同的狀態和資源。因此,中介軟體103會在新加入的圖形處理器GP82、GP83和GP84各別設定前述所記錄之狀態,並且對新加入的圖形處理器GP82、GP83和GP84各別創建前述所記錄之資源。此外,當應用程式的顯示區域移動時,也可能有圖形處理器新增至上述顯示集合裡,中介軟體103也會用相同方式在新增的圖形處理器設定狀態並創建資源。應注意的是,在中介軟體103分派來自應用程式101的繪圖命令時,中介軟體103亦根據繪圖命令,記錄應用程式101在上述顯示集合中的圖形處理器所設定的狀態和所創建的資源。如前所述,這些資源可以包含,但不限於Direct3D的端點暫存區(vertex buffer)、索引暫存區(index buffer)、端點坐標轉換程式(vertex shader)、畫素色彩計算程式(pixel shader)、以及紋理圖案等資訊;至於上述狀態可以包含,但不限於Direct3D,光柵化狀態,紋理混合狀態,深度和模板狀態,輸出混合狀態等資訊。
本發明亦提供一種多重顯示器控制系統,以執行前述之多重顯示器控制方法。圖9繪示為本發明一實施例之一種多重顯示器控制系統之示意圖。圖9與圖1大部分相似,主要區別是以多重顯示器控制系統903取代圖1的中介軟體103,而多重顯示器控制系統903可以獨立製作成一顆積體電路(Integrated Circuit,IC)或電路模組,熟習本發明技藝者可依據實際需求決定用哪一種實施方式。多重顯示器控制系統903包括控制器9031和記憶體9032,其中控制器9031執行以上各實施例的多重顯示器控制方法,例如圖2、4、5、6、8A和8B所繪示之方法流程。而在執行上述方法的過程中,控制器9031可將步驟S202(圖2)中之顯示集合、以及步驟S203中之各圖形處理器的顯示交集區域等資料記錄於記憶體9032之中;也可根據應用程式的繪圖命令,將應用程式在上述顯示集合中的圖形處理器所設定的狀態及創建的資源記錄在記憶體9032之中。
綜上所述,本發明提供一種多重顯示器控制方法與系統,使得欲在多重顯示器上顯示的影像資料,特別是三維影像內容時,不需要透過目前Direct3D程式庫,而是將影像資料內容,在經過座標轉換後再透過驅動程式直接分派給各個控制顯示器之圖形處理器以繪製其顯示內容,隨後在電腦系統的控制下同時顯示。不僅可以多工的方式加速影像的處理速度並減少單一圖形處理器之負擔,而在應用程式的顯示區域擴大或移動時,亦可彈性地加入對應的圖形處理器同時進行運算。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
101、901‧‧‧應用程式
102、902‧‧‧圖形介面
103‧‧‧中介軟體
903‧‧‧多重顯示器控制系統
9031‧‧‧控制器
9032‧‧‧記憶體
104、904‧‧‧驅動程式
1051~105n、9051~905n‧‧‧圖形處理器
106、906‧‧‧多重顯示器
211、212、213、214、311~313、321~323、331~333、711、712、721、722、811~814‧‧‧顯示器
A11~A14、A21~A24、A71~A74‧‧‧顯示交集區域
B11、B21‧‧‧紋理圖案顯示交集區域
AP1A、AP1B、AP7、AP8A、AP8B‧‧‧顯示區域
S201~S203、S400、S401、S403、S411、S412、S501~S504、S601~S604‧‧‧步驟
圖1繪示為本發明一實施例之多重顯示器控制系統的示意圖。
圖2繪示為本發明一實施例之多重顯示器控制方法之步驟流程圖。
圖3A及圖3B繪示為本發明一實施例中,一實施方式的顯示區域及顯示器畫面之關係示意圖。
圖4繪示為本發明一實施例中,分派繪圖命令至顯示集合的每個圖形處理器的步驟之流程圖。
圖5繪示為本發明一實施例中,分派繪圖命令至顯示集合的每一圖形處理器,而繪圖命令包括繪製顯示區域中的紋理圖案的步驟之流程圖。
圖6繪示為本發明一實施例中,分派繪圖命令至顯示集合的每一圖形處理器,而繪圖命令包括顯示區域中的紋理圖案的步驟之流程圖。
圖7繪示為本發明一實施例中,顯示區域中之一紋理圖案於顯示器上顯示之實施方式之示意圖。
圖8A及圖8B繪示為本發明一實施例中,應用程式之顯示區域改變的實施方式之示意圖。
圖9繪示為本發明一實施例之多重顯示器控制系統之示意圖。
S201~S203‧‧‧步驟
权利要求:
Claims (20)
[1] 一種多重顯示器控制方法,用於控制多個圖形處理器同時繪製一顯示器畫面,其中每一上述圖形處理器控制至少一顯示器,該多重顯示器控制方法包括:提供和一作業系統的一繪圖程式庫相同的圖形介面,並以該圖形介面自一應用程式接收一繪圖命令;根據該應用程式的顯示區域,決定上述多個圖形處理器的一顯示集合,其中該顯示集合中的圖形處理器所控制顯示器的顯示區域與該應用程式的顯示區域有交集;根據該顯示集合中的該圖形處理器所控制顯示器的顯示區域,對該繪圖命令進行座標轉換以產生一座標轉換繪圖命令;以及分派該座標轉換繪圖命令至該顯示集合中對應的該圖形處理器。
[2] 如申請專利範圍第1項所述之多重顯示器控制方法,其中該應用程式的顯示區域係為該應用程式透過該多重顯示器所顯示的視窗。
[3] 如申請專利範圍第1項所述之多重顯示器控制方法,其中該顯示集合中的每一該圖形處理器接收所對應之該座標轉換繪圖命令後,該顯示集合中的每一該圖形處理器僅在所控制的該顯示器的該顯示區域與該應用程式的顯示區域有交集之部分進行繪製。
[4] 如申請專利範圍第3項所述之多重顯示器控制方法,更包含當該顯示集合中所有的該圖形處理器完成繪製所對應之該顯示交集區域時同時顯示上述顯示交集區域。
[5] 如申請專利範圍第1項所述之多重顯示器控制方法,更包含在產生該座標轉換繪圖命令之前,當該繪圖命令的端點坐標尚未轉換為該應用程式的顯示區域的畫面坐標時,為該顯示集合中的每一圖形處理器進行對應的視界轉換,以設定該顯示集合中的每一該圖形處理器在上述端點所在的三維向量空間之中可觀察到的視野範圍。
[6] 如申請專利範圍第1項所述之多重顯示器控制方法,其中當該繪圖命令包括於該應用程式的顯示區域中繪製一紋理圖案時,該分派該繪圖命令至該顯示集合中的每一該圖形處理器的步驟更包括:經由該圖形介面自該應用程式接收該紋理圖案在該顯示區域的顯示位置;根據該紋理圖案在該顯示區域的顯示位置,計算該紋理圖案在該顯示集合中的每一該圖形處理器所控制的該顯示器的該顯示區域中的紋理圖案顯示交集區域;根據該紋理圖案顯示交集區域對該繪圖命令進行座標轉換,用以產生座標轉換紋理圖案繪圖命令;以及分派該座標轉換紋理圖案繪圖命令至該紋理圖案顯示集合中所對應之該圖形處理器。
[7] 如申請專利範圍第6項所述之多重顯示器控制方法,其中該紋理圖案顯示集合中所對應之該圖形處理器係依據對應的該座標轉換紋理圖案繪圖命令,在該圖形處理器所控制的該顯示器的該顯示區域中,僅對該紋理圖案顯示交集區域的部分進行繪製。
[8] 如申請專利範圍第1項所述之多重顯示器控制方法,更包括:根據該繪圖命令,記錄該應用程式在該顯示集合中的該圖形處理器所設定的狀態和所創建的資源;以及若有圖形處理器新增至該顯示集合,則在該新增的圖形處理器設定上述狀態並創建上述資源。
[9] 一種多重顯示器控制系統,用於控制多個圖形處理器同時繪製一顯示器畫面,其中每一上述圖形處理器控制至少一顯示器,該多重顯示器控制系統包括:一記憶體;以及一控制器,提供和一作業系統的一繪圖程式庫相同的圖形介面,並取代該程式庫以該圖形介面自一應用程式接收一繪圖命令;其中該控制器根據該應用程式的顯示區域,決定上述多個圖形處理器的一顯示集合,該顯示集合中的圖形處理器所控制顯示器的顯示區域與該應用程式的顯示區域有交集;其中該控制器根據該應用程式的顯示區域在該顯示集合中的每一圖形處理器所控制的該顯示器的該顯示區域的顯示交集區域,對該繪圖命令進行座標轉換以產生至少一座標轉換繪圖命令後,分派該座標轉換繪圖命令至該顯示集合中的對應的該圖形處理器;以及其中該控制器將該顯示集合與該顯示交集區域記錄在該記憶體。
[10] 如申請專利範圍第9項所述之多重顯示器控制系統,其中該顯示區域係為該應用程式在透過該多重顯示器所顯示的視窗。
[11] 如申請專利範圍第9項所述之多重顯示器控制系統,其中該座標轉換繪圖命令包含該顯示集合中的每一該圖形處理器所控制顯示器的該顯示區域中,對該顯示交集區域所進行繪製的座標,該控制器將座標轉換繪圖命令分派至對應的該圖形處理器,以使該圖形處理器依據該座標轉換繪圖命令僅繪製該顯示交集區域。
[12] 如申請專利範圍第11項所述之多重顯示器控制系統,其中當該顯示集合中的所有圖形處理器完成上述繪製時,該控制器控制該顯示集合中的所有圖形處理器同時顯示該顯示交集區域。
[13] 如申請專利範圍第9項所述之多重顯示器控制系統,更包含在產生該座標轉換繪圖命令之前,當該繪圖命令的端點坐標尚未轉換為該應用程式的顯示區域的畫面坐標時,該控制器為該顯示集合中的每一該圖形處理器設定對應的視界轉換,以設定該顯示集合中的每一該圖形處理器在該端點所在的三維向量空間中可觀察到的視野範圍。
[14] 如申請專利範圍第9項所述之多重顯示器控制系統,其中當該繪圖命令包括繪製該顯示區域中的一紋理圖案時,該控制器經由該圖形介面自該應用程式接收該紋理圖案在該顯示器的該顯示區域中的位置;其中該控制器根據該紋理圖案在該顯示器的該顯示區域中的該位置,計算該紋理圖案在該顯示集合中的每一該圖形處理器所控制的該顯示器的該顯示區域的紋理圖案顯示交集區域;其中該控制器根據該紋理圖案的該紋理圖案顯示交集區域,對該繪圖命令進行座標轉換,用以產生座標轉換紋理圖案繪圖命令,並分派該座標轉換紋理圖案繪圖命令至該顯示集合中對應的該圖形處理器,以使該顯示集合中的每一該圖形處理器僅繪製該紋理圖案在該圖形處理器的該紋理圖案顯示交集區域的部分。
[15] 如申請專利範圍第9項所述之多重顯示器控制系統,其中該控制器根據該繪圖命令在該記憶體記錄該應用程式在該顯示集合中的該圖形處理器所設定的狀態和所創建的資源。
[16] 如申請專利範圍第15項所述之多重顯示器控制系統,其中當有一圖形處理器新增至該顯示集合時,則該控制器在新增的該圖形處理器設定該狀態並創建該資源。
[17] 一種多重顯示器控制方法,用於控制多個圖形處理器同時繪製一顯示器畫面,其中每一該圖形處理器控制至少一顯示器,該多重顯示器控制方法包括:根據一應用程式的顯示區域,決定該多個圖形處理器的一顯示集合,其中該顯示集合中的圖形處理器所控制顯示器的顯示區域與該應用程式的顯示區域有交集;根據該顯示集合中的該圖形處理器所控制的該顯示器的該顯示區域,對該繪圖命令進行座標轉換以產生至少一座標轉換繪圖命令;以及分派該座標轉換繪圖命令至該顯示集合中對應的該圖形處理器,以使每一該顯示集合中的該圖形處理器僅繪製該顯示交集區域的部分。
[18] 如申請專利範圍第17項所述之多重顯示器控制方法,其中該應用程式的顯示區域係為該應用程式透過該多重顯示器所顯示的視窗。
[19] 如申請專利範圍第17項所述之多重顯示器控制方法,其中當該繪圖命令包括於該應用程式的顯示區域中繪製一紋理圖案時,該分派該繪圖命令至該顯示集合中的每一該圖形處理器的步驟更包括:根據該紋理圖案在該顯示區域的顯示位置,決定該紋理圖案在該顯示集合中的每一該圖形處理器所控制的該顯示器的顯示區域的紋理圖案顯示交集區域;根據該紋理圖案顯示交集區域對該繪圖命令進行座標轉換,用以產生一座標轉換紋理圖案繪圖命令;以及分派該座標轉換紋理圖案繪圖命令至該紋理圖案顯示集合中所對應之該圖形處理器。
[20] 如申請專利範圍第19項所述之多重顯示器控制方法,其中該紋理圖案顯示集合中之該圖形處理器係依據對應的該座標轉換紋理圖案繪圖命令,在該圖形處理器所控制的該顯示器的該顯示區域中,僅對該紋理圖案顯示交集區域的部分進行繪製。
类似技术:
公开号 | 公开日 | 专利标题
TWI474281B|2015-02-21|多重顯示器控制方法及其系統
US7342588B2|2008-03-11|Single logical screen system and method for rendering graphical data
US6882346B1|2005-04-19|System and method for efficiently rendering graphical data
US6683614B2|2004-01-27|System and method for automatically configuring graphics pipelines by tracking a region of interest in a computer graphical display system
US7030891B2|2006-04-18|Systems and methods for rendering graphical data
US8854380B2|2014-10-07|System and method for rendering and displaying high-resolution images
US9129581B2|2015-09-08|Method and apparatus for displaying images
US9026745B2|2015-05-05|Cross process memory management
US6229544B1|2001-05-08|Tiled image editor
US7383514B2|2008-06-03|System and method for configuring graphics pipelines in a computer graphical display system
CN103680470B|2015-09-30|大屏控制的图像显示方法及系统
JPH09245179A|1997-09-19|コンピュータグラフィックス装置
US20040179007A1|2004-09-16|Method, node, and network for transmitting viewable and non-viewable data in a compositing system
JP6545996B2|2019-07-17|映像表示システム
US20080297525A1|2008-12-04|Method And Apparatus For Reducing Accesses To A Frame Buffer
US6680739B1|2004-01-20|Systems and methods for compositing graphical data
TW201510931A|2015-03-16|描繪裝置
US6791553B1|2004-09-14|System and method for efficiently rendering a jitter enhanced graphical image
US20140292617A1|2014-10-02|System, method, and computer program product for reducing image artifacts on multiple displays
US6870539B1|2005-03-22|Systems for compositing graphical data
US6985162B1|2006-01-10|Systems and methods for rendering active stereo graphical data as passive stereo
US20060170706A1|2006-08-03|Systems and methods for rendering three-dimensional graphics in a multi-node rendering system
JPH11272846A|1999-10-08|図形表示装置
JP2010164972A|2010-07-29|画像ドローイング方法及び装置
CN113741836A|2021-12-03|媒体处理方法、装置和系统
同族专利:
公开号 | 公开日
US20130002688A1|2013-01-03|
CN102436364B|2016-04-06|
TWI474281B|2015-02-21|
CN102436364A|2012-05-02|
CN102270095A|2011-12-07|
US9182938B2|2015-11-10|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US5864342A|1995-08-04|1999-01-26|Microsoft Corporation|Method and system for rendering graphical objects to image chunks|
US5963210A|1996-03-29|1999-10-05|Stellar Semiconductor, Inc.|Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator|
WO2000010372A2|1998-08-20|2000-03-02|Apple Computer, Inc.|System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline|
JP3582382B2|1998-11-13|2004-10-27|株式会社日立製作所|マルチディスプレイ装置の表示制御装置、表示装置及びマルチディスプレイ装置|
JP2000284941A|1999-03-31|2000-10-13|Mitsubishi Electric Corp|マルチディスプレイシステムのカーソル表示装置|
US6795081B2|2001-05-18|2004-09-21|Sun Microsystems, Inc.|Sample cache for supersample filtering|
TW569123B|2002-05-15|2004-01-01|Via Tech Inc|Integrated graphics chip structure with multiple display functions|
US6982682B1|2002-07-29|2006-01-03|Silicon Graphics, Inc.|System and method for managing graphics applications|
JP2004258242A|2003-02-25|2004-09-16|Olympus Corp|画像表示装置及びプログラム|
TWI258120B|2003-06-24|2006-07-11|Via Tech Inc|Driving module of monitor with multiple display outputs and method thereof|
US7015915B1|2003-08-12|2006-03-21|Nvidia Corporation|Programming multiple chips from a command buffer|
US7528839B1|2003-08-13|2009-05-05|Nvidia Corporation|Faster clears for three-dimensional modeling applications|
US7075541B2|2003-08-18|2006-07-11|Nvidia Corporation|Adaptive load balancing in a multi-processor graphics processing system|
JP2007512613A|2003-11-19|2007-05-17|ルシッドインフォメーションテクノロジーリミテッド|Pcバス上の多重3−dグラフィックパイプラインのための方法およびシステム|
US7340547B1|2003-12-02|2008-03-04|Nvidia Corporation|Servicing of multiple interrupts using a deferred procedure call in a multiprocessor system|
US7170526B1|2004-01-26|2007-01-30|Sun Microsystems, Inc.|Method and apparatus for redirecting the output of direct rendering graphics calls|
US6980216B2|2004-01-27|2005-12-27|Honeywell International Inc.|Graphics driver and method with time partitioning|
US20050237329A1|2004-04-27|2005-10-27|Nvidia Corporation|GPU rendering to system memory|
US7522167B1|2004-12-16|2009-04-21|Nvidia Corporation|Coherence of displayed images for split-frame rendering in multi-processor graphics system|
US20090128573A1|2005-02-09|2009-05-21|Canice Lambe|Memory Based Content Display Interception|
CN101326821B|2006-03-14|2011-05-25|索尼株式会社|图像处理设备和图像处理方法|
US20080284798A1|2007-05-07|2008-11-20|Qualcomm Incorporated|Post-render graphics overlays|
US8537166B1|2007-12-06|2013-09-17|Nvidia Corporation|System and method for rendering and displaying high-resolution images|
CN101236485A|2008-01-28|2008-08-06|国电信息中心|一种多屏3d同步显示的方法、装置及系统|
US8363067B1|2009-02-05|2013-01-29|Matrox Graphics, Inc.|Processing multiple regions of an image in a graphics display system|
CN102096572A|2009-12-11|2011-06-15|图诚科技股份有限公司|多屏幕信号处理装置以及多屏幕系统|
US9524138B2|2009-12-29|2016-12-20|Nvidia Corporation|Load balancing in a system with multi-graphics processors and multi-display systems|US8555201B2|2008-06-05|2013-10-08|Qualcomm Incorporated|Wireless communication device having deterministic control of foreground access of the user interface|
CN103984669A|2013-02-07|2014-08-13|辉达公司|一种用于图像处理的系统和方法|
US20140298246A1|2013-03-29|2014-10-02|LenovoPte, Ltd.|Automatic display partitioning based on user number and orientation|
KR20140142863A|2013-06-05|2014-12-15|한국전자통신연구원|그래픽 편집기 제공 장치 및 그 방법|
CN103700362B|2013-12-20|2016-03-30|广东威创视讯科技股份有限公司|多信号窗口显示方法及装置|
US9530386B2|2014-03-27|2016-12-27|Intel Corporation|Methods and apparatus to provide extended graphics processing capabilities|
KR20160094815A|2015-02-02|2016-08-10|삼성전자주식회사|다중 디스플레이 기반 전자 장치|
JP6540793B2|2015-03-19|2019-07-10|富士通株式会社|表示方法、情報処理装置、表示制御装置及びプログラム|
CN104834402B|2015-05-11|2018-01-02|上海交通大学|基于预测的自适应中文输入法触摸屏键盘的实现方法|
KR101675804B1|2015-05-27|2016-11-15|한화테크윈 주식회사|비디오 월이 형성되는 감시 시스템|
CN112988357B|2021-04-14|2021-07-27|湖北亿咖通科技有限公司|全景影像显示方法、计算机存储介质及电子设备|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
CN2011101823178A|CN102270095A|2011-06-30|2011-06-30|多重显示器控制方法及其系统|
CN201110393483.2A|CN102436364B|2011-06-30|2011-12-01|多重显示器控制方法及其系统|
[返回顶部]